﻿@echo off
chcp 65001 >nul
title PyQt Game Engine - 开发模式

echo ========================================
echo   PyQt Game Engine 开发环境启动器
echo ========================================
echo.

REM 设置应用程序目录为Source目录
set SOURCE_DIR=%~dp0
cd /d "%SOURCE_DIR%"

REM 设置虚拟环境目录（与Source目录平级，在父目录中）
set "VENV_DIR=%~dp0.venv"

echo [信息] 源代码目录: %SOURCE_DIR%
echo [信息] 虚拟环境目录: %VENV_DIR%
echo.

REM 检查Python是否安装
python --version >nul 2>&1
if errorlevel 1 (
    echo [错误] 未找到Python，请先安装Python 3.8+
    echo [信息] 从 https://www.python.org/downloads/ 下载安装
    pause
    exit /b 1
)

REM 显示Python信息
echo [信息] 系统Python版本:
python -c "import sys; print('   版本:', sys.version.split()[0]); print('   路径:', sys.executable)"

echo.

REM 检查虚拟环境（与Source目录平级）
if not exist "%VENV_DIR%" (
    echo [信息] 虚拟环境不存在，正在创建...
    python -m venv "%VENV_DIR%"
    if errorlevel 1 (
        echo [错误] 虚拟环境创建失败
        pause
        exit /b 1
    )
    echo [信息] 虚拟环境创建成功
)

echo [信息] 激活虚拟环境...
call "%VENV_DIR%\Scripts\activate.bat"
if errorlevel 1 (
    echo [错误] 虚拟环境激活失败
    pause
    exit /b 1
)

echo [信息] 虚拟环境Python版本:
python -c "import sys; print('   版本:', sys.version.split()[0]); print('   路径:', sys.executable)"

echo.

REM 检查并安装依赖
if exist "requirements.txt" (
    echo [信息] 检查依赖包...
    python -c "import PyQt5" 2>nul
    if errorlevel 1 (
        echo [信息] 安装依赖包...
        pip install -r requirements.txt
        if errorlevel 1 (
            echo [错误] 依赖安装失败
            echo [信息] 尝试单独安装PyQt5...
            pip install PyQt5
            if errorlevel 1 (
                echo [错误] PyQt5安装失败
                pause
                exit /b 1
            )
        )
        echo [信息] 依赖安装完成
    ) else (
        echo [信息] 依赖包已安装
    )
) else (
    echo [警告] 未找到requirements.txt文件
    echo [信息] 安装PyQt5...
    pip install PyQt5
    if errorlevel 1 (
        echo [错误] PyQt5安装失败
        pause
        exit /b 1
    )
)

echo.

REM 检查主程序文件
if not exist "Globals.py" (
    echo [错误] 未找到主程序文件: Globals.py
    pause
    exit /b 1
)

echo [信息] 启动主程序: Globals.py
echo.

REM 设置环境变量
set PYTHONPATH=.
set APP_ENV=development
set ENGINE_DEBUG=true

REM 传递所有参数给Python程序
python Globals.py

REM 检查程序退出状态
if errorlevel 1 (
    echo.
    echo [错误] 应用程序异常退出，代码: %errorlevel%
    echo [信息] 请查看logs目录下的日志文件获取详细信息
    pause
) else (
    echo.
    echo [信息] 应用程序正常退出
)